package com.example.demo_one.kotlin

// lambda表达式
fun main() {
//    demo01()
    demo02()
}

fun demo01(){
    val numbers = listOf(1, 2, 3, 4, 5) // flutter中使用list , 鸿蒙中使用array数组

//    过滤出大于3的数字
//    numbers.filter { it > 3 }
    var newlist =  numbers.filter({it -> it > 3}) // 与上边写法相同 , 上边为简写版

    val doubled = numbers.map { it * 2 }

    // 第一个大于3的元素
    var firstLarge = numbers.first{it > 3 }
    // 最后一个大于3的元素
    var lastLarge = numbers.last{it > 3}
    // 是否全部大于3
    var allLarge = numbers.all{it > 3 }
    println(newlist)
    println(doubled)
    println(firstLarge)
    println(lastLarge)
    println(allLarge)
}

fun demo02(){
    fun cale(a:Int,b:Int , op:(Int,Int) -> Int):Int{
        return op(a,b)
    }
//    var res1 = cale(10,20,{a,b -> a+b})
    var res1 = cale(10,20){a,b -> a+b} // 简写
    println(res1)
    var res2 = cale(10,20,{a,b -> a-b})
    println(res2)
    var res3 = cale(10,20,{a,b -> a*b})
    println(res3)
}